home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
- *
- * (b) If this Sample Code is distributed as part of the Display PostScript
- * System Software Development Kit from Adobe Systems Incorporated,
- * then this copy is designated as Development Software and its use is
- * subject to the terms of the License Agreement attached to such Kit.
- *
- * (c) If this Sample Code is distributed independently, then the following
- * terms apply:
- *
- * (d) This file may be freely copied and redistributed as long as:
- * 1) Parts (a), (d), (e) and (f) continue to be included in the file,
- * 2) If the file has been modified in any way, a notice of such
- * modification is conspicuously indicated.
- *
- * (e) PostScript, Display PostScript, and Adobe are registered trademarks of
- * Adobe Systems Incorporated.
- *
- * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
- * CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
- * AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
- * ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
- * OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
- * WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
- * WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
- * DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS.
- */
-
- /*
- * iparserhooks.m
- *
- * Version: 2.0
- * Author: Ken Fromm
- * History:
- * 03-07-91 Added this comment.
- */
-
- #import "iinterpreter.h"
- #import "iinterpreterhooks.h"
- #import "Graphic.h"
- #import <dpsclient/dpsclient.h>
- #import <stdio.h>
-
- extern char yytext[];
- extern int yyleng;
-
- void i_int()
- {
- int avalue;
-
- sscanf(yytext,"%d", &avalue);
- ipushint(avalue);
- }
-
- void i_real()
- {
- float avalue;
-
- sscanf(yytext,"%f", &avalue);
- ipushreal(avalue);
- }
-
- /* Omit the preceding slash. */
- void i_literal()
- {
- ipushname(&yytext[1], yyleng-1);
- }
-
- void i_name()
- {
- printf("%s\n", yytext);
- }
-
- void i_array()
- {
- }
-
- /* Disregard the open and close parens. */
- void i_string()
- {
- ipushstring(&yytext[1], yyleng-2);
- }
-
- void i_f()
- {
- iinsertPath(FILL);
- }
-
- void i_s()
- {
- iinsertPath(STROKE);
- }
-
- void i_clip()
- {
- iinsertPath(CLIP);
- }
-
- void i_T()
- {
- iclear();
- }
-
- void i_A()
- {
- iclear();
- }
-
- void i_W()
- {
- iclear();
- }
-
- void i_AW()
- {
- iclear();
- }
-
- void i_m()
- {
- iinsertPathOp(dps_moveto,2);
- }
-
- void i_lineto()
- {
- iinsertPathOp(dps_lineto,2);
- }
-
- void i_L()
- {
- int i, index;
-
- ipopint(&index);
- for (i = index; i > 0; i--)
- iinsertPathOp(dps_lineto,2);
- }
-
- void i_r()
- {
- iinsertPathOp(dps_rlineto,2);
- }
-
- void i_R()
- {
- int i, index;
-
- ipopint(&index);
- for (i = index; i > 0; i--)
- iinsertPathOp(dps_rlineto,2);
- }
-
- void i_l()
- {
- iinsertPathOp(dps_moveto,2);
- iinsertPathOp(dps_lineto,2);
- iinsertPath(STROKE);
- }
-
- void i_x()
- {
- ipushreal(0.0);
- iinsertPathOp(dps_rlineto,2);
- }
-
- void i_y()
- {
- ipushreal(0.0);
- iroll(2,1);
- iinsertPathOp(dps_rlineto,2);
- }
-
- void i_X()
- {
- iinsertPathOp(dps_moveto,2);
- ipushreal(0.0);
- iinsertPathOp(dps_rlineto,2);
- iinsertPath(STROKE);
- }
-
- void i_Y()
- {
- iinsertPathOp(dps_moveto,2);
- ipushreal(0.0);
- iroll(2,1);
- iinsertPathOp(dps_rlineto,2);
- iinsertPath(STROKE);
- }
-
- void i_c()
- {
- iinsertPathOp(dps_curveto,6);
- }
-
- void i_cp()
- {
- iinsertPathOp(dps_closepath,0);
- }
-
- void i_w()
- {
- float avalue;
-
- ipopreal(&avalue);
- ii_setlinewidth(avalue);
- }
-
- void i_g()
- {
- float avalue;
-
- ipopreal(&avalue);
- ii_setgray(avalue);
- }
-
- void i_j()
- {
- int avalue;
-
- ipopint(&avalue);
- ii_setlinejoin(avalue);
- }
-
- void i_d()
- {
- /* setdash not implemented */
- iclear();
- }
-
- void i_miter()
- {
- float avalue;
-
- ipopreal(&avalue);
- ii_setmiterlimit(avalue);
- }
-
- void i_cap()
- {
- float avalue;
-
- ipopreal(&avalue);
- ii_setlinecap(avalue);
- }
-
- void i_RGB()
- {
- float r, g, b;
-
- ipopreal(&b);
- ipopreal(&g);
- ipopreal(&r);
- ii_setrgbcolor(r, g, b);
- }
-
- void i_F()
- {
- /* setfont not implemented */
- iclear();
- }
-
- void i_MF()
- {
- /* makefont not implemented */
- iclear();
- }
-
- void i_FF()
- {
- /* setfont not implemented */
- iclear();
- }
-
- void i_DF()
- {
- /* definefont not implemented */
- iclear();
- }
-
- void i_IMASK()
- {
- /* imagemask not implemented */
- iclear();
- }
-
- void i_IMAGE()
- {
- /* image not implemented */
- iclear();
- }
-
- void i_BPAGE()
- {
- ipop();
- }
-
- void i_EPAGE()
- {
- int page_num;
-
- ipopint(&page_num);
- iinsertPage(page_num);
- }
-
- void i_REMAP()
- {
- iclear();
- }
-
- void i_RECODE()
- {
- iclear();
- }
-
-